#include<bits/stdc++.h>
using namespace std;
const int N=100010;
double d[N],v[N],a[N],p[N];
double n,m,L;
int T;
double se,V;
bool b[N]={false};
int main(){
    freopen("detect.in","r",stdin);
    freopen("detect.out","w",stdout);
    cin>>T;
    for(int i=0;i<T;i++){
        int cnt=0,s=0;
        cin>>n>>m>>L>>V;
        for(int j=1;j<=n;j++){
            cin>>d[j]>>v[j]>>a[j];
        }
        for(int j=1;j<=m;j++){
            cin>>p[j];
        }
        for(int j=1;j<=n;j++){
            for(int k=1;k<=m;k++){
                se=((V*V)-(v[j]*v[j]))/(a[j]*2);
                if(se>p[k]-d[j]&&p[k]>d[j]&&a[j]<0){
                    cnt++;
                    b[k]=true;
                    break;
                }
                else if(se<p[k]-d[j]&&p[k]>d[j]&&a[j]>0){
                    cnt++;
                    b[k]=true;
                    break;
                }
                else if(a[j]==0&&p[k]>d[j]&&v[j]>V){
                    cnt++;
                    b[k]=true;
                    break;
                }
            }
        }
        cout<<cnt<<" ";
        for(int j=1;j<=m;j++){
            if(b[j]==true) s++;
        }
        cout<<s<<endl;
    }
    return 0;
}
